<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>运算符</title>
</head>
<body>
    
</body>
<script>
    /*
        运算符：
            * 算数运算符：+ - * / %
            * 逻辑运算符：&& || ! 逻辑运算符，结果是真或假
            * 比较运算符：> < >= <= ==(等于) ===(恒等与) !=(不等于) !==(不恒等与) ：比较运算符的结果是真或假
            * 赋值运算符：= += -= *= /= %=
            * 一元运算符： i++ i-- --i ++i
            * 三目运算符： ？：
            * 
        优先级：
            () 
            ++ -- ! 
            * / % 
            + -
            < <= > >=
            == != === !==
            &&
            ||
            ？：

            1 + 2 && 5 * 6
    */


    //算数运算符:+:算数运算相加，字符串拼接； - * / % 会进行隐式转换

    // % 求余，取余

    var num = 5;
    var num2 = 5 % 2;
    console.log(num2);//余数：1


    /*
        实例：为抵抗洪水，战士连续作战89小时，编程计算共多少天零多少小时？
        需求：89小时=xx天xx小时

        案例：66454秒=xx时xx分xx秒 （课堂练习）
    */

    var hours = 89;
    var days = parseInt(hours / 24);
    var hour = hours % 24;
    console.log('89小时=' +  days + '天' + hour + '时');


    //逻辑运算符：&& || !

    /*
        &&:与，且，两边都是真，才为真
        桂林：乐满地，3.7女神节，女生 短裙 免费游玩
        细节：面试题 
    */

    var gender = '女';
    var cloth = '短裙';
    if(gender == '女' && cloth == '短裙') {
        //if里面的表达式结果是真，执行这里
        document.write('恭喜你，可以免费游玩一天');
    }else{
        document.write('不好意思，您还是买票吧');
    }

    // && 面试题:左边为假，就不再运算右边 ；|| 如果左边为真，就不再运行右边
    var a = 1;
    var b = 3;
    var c = 0;
    var d = 0;

    // a && (d = a + b);// d? == 4 
    c && (d = a + b);//d ==0
    console.log(d);

    //比较运算符：== ===区别 面试题
    var num1 = 5;
    var num2 = '5';
    if(num1 > 2) {

    }else{

    }

    console.log(num1 == num2);//? true :==会进行隐式转换
    console.log(num1 === num2);//?false ：不会进行隐式转换

    //赋值运算符：= += -= *= /= %=
    var num3 = 9;
    // num3 = num3 + 1;
    num3 += 1;
    console.log(num3);


    /*
        一元运算符： i++ i-- --i ++i 面试题
        ++:自增1
        --：自减1
            * 前置：++i
                * 自身：加1
                * 返回值：加1
            * 后置：i++
                * 自身：加1
                * 返回值：返回加之前的值
             
            var result = i++;
                * i:自身
                * result：返回值
                 
    */
    var i = 1;//i 自身
    var result = ++i;//result:返回值
    console.log(i,result);//2 2

    var j = 2;
    var k = j++ + ++j + j + j-- + --j + j;
    //  j = 3   +  4  + 4 + 3   + 2  +  2  == 2
    //  k = 18
    console.log(j,k);//2 18


    //三目：? :

    //找出两个值的最大值
    var num1 = 5;
    var num2 = 10;
    // var max = 0;
    // if(num1 < num2) {
    //     max = num2;
    // }else{
    //     max = num1;
    // }

    var max = num1 > num2 ? num1 : num2;

    console.log('最大的数字是:' + max);
</script>
</html>